// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env:'cloud1-0g9faihx8985932d'
})
const MAX_LIMIT = 100

exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const listname = event.listName
  // 先取出集合记录总数
  const countResult = await db.collection(listname).count()
  const total = countResult.total
  // 计算需分几次取
  const batchTimes = Math.ceil(total / 100)
  // 承载所有读操作的 promise 的数组
  const tasks = []
  for (let i = 0; i < batchTimes; i++) {
    const promise = db.collection(listname).skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
    tasks.push(promise)
  }
  // 等待所有
  return (await Promise.all(tasks)).reduce((acc, cur) => {
    return {
      data: acc.data.concat(cur.data),
      errMsg: acc.errMsg,
      openid:wxContext.OPENID
    }
  })
}
// 云函数入口函数
// exports.main = async (event, context) => {
//   const wxContext = cloud.getWXContext()

//   // return cloud.database().collection('studyRecords').get()
//                 // event,
//                 // openid: wxContext.OPENID,
//                 // appid: wxContext.APPID,
//                 // unionid: wxContext.UNIONID,
//   return getListCount(openid).then(res => {
//     let count = res
//     let list = []
//     for (let i = 0; i < count ; i += 20) {
//       getListIndexSkip(openid, i).then(res => {
//           list = list.concat(res);
//           if (list.length == count ) {
//             resolve(list)
//           }
//         })
//         .catch(e => {
//           console.error(e)
//           reject("查询失败")
//         })
//     }
//   })
// }
// function getListCount(openid) {
//   return new Promise((resolve, reject) => {
//     db.collection('studyRecords').where({
//       "name": app.globalData.name
//     }).count().then(res => {
//       resolve(res.total);
//     }).catch(e => {
//       console.log(e)
//       reject("查询失败")
//     })
//   })
// }

// function getListIndexSkip(openid, skip) {
//   return new Promise((resolve, reject) => {
//     let statusList = []
//     let selectPromise;    
//     if (skip > 0) {
//       selectPromise = db.collection('studyRecords').where({
//         "_openid": openid
//       }).skip(skip).get()
//     } else {
//       //skip值为0时，会报错
//       selectPromise = db.collection('studyRecords').where({
//         "_openid": openid
//       }).get()
//     }
//     selectPromise.then(res => {
//       resolve(res.data);
//     }).catch(e => {
//       console.error(e)
//       reject("查询失败!")
//     })
//   })
// }

// getListCount(openid).then(res => {
//   let count = res
//   let list = []
//   for (let i = 0; i < count ; i += 20) {
//     getListIndexSkip(openid, i).then(res => {
//         list = list.concat(res);
//         if (list.length == count ) {
//           resolve(list)
//         }
//       })
//       .catch(e => {
//         console.error(e)
//         reject("查询失败")
//       })
//   }
// })

